import page from '@/pages.json'

export default class Jump {
	/**
	 *  小程序跳转H5，App跳转H5
	 * type 值：tab或者不传，区别是否为tab页面
	 * path  路径
	 */
	static toJump(path) {
		console.log(path, '要跳转的页面地址=====$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$')
		// 判断没有'/'就需要加'/'
		if (path.indexOf('http') == -1 && path[0] != '/') {
			path = '/' + path
		}
		// console.log(path, '要跳转的页面地址=====222222222222222222')
		if (this.getIsTabPage(path)) {
			uni.switchTab({
				url: path
			})
		} else {
			//路由跳转与 跳转外部链接直接用webview页跳转
			if (this.getPage(path)) {
				uni.navigateTo({
					url: path
				})
			} else {
				// #ifdef H5 || MP-WEIXIN
				location.href = path
				// #endif
				// #ifndef H5
				uni.navigateTo({
					url: "/pages/webview/webview?url=" + encodeURIComponent(path)
				})
				// #endif

			}
		}
	}
	// 获取页面路由里是否包含此路径
	static getPage(path) {
		let _path = path.split('?')[0]
		// console.log(_path, '$$$$$$$$$$$$$$$$$$$$$$$$$$');
		let pages = page.pages;
		let isPage = []
		isPage = pages.filter((item) => {
			return ('/' + item.path) === _path
		})
		return isPage.length > 0 ? true : false
	}

	// 判断是不是tab页面
	static getIsTabPage(path) {
		let pages = [
			'pages/home/index',
			'pages/active/index',
			'pages/advise/index',
			'pages/message/index',
			'pages/mine/index',
		]

		let _path = path.split('?')[0]
		let isPage = []
		isPage = pages.filter((item) => {
			return ('/' + item) === _path
		})
		// console.log(isPage, 'isPage###########################')
		return isPage.length > 0 ? true : false
	}
	/**
	 *  app 拉起微信小程序
	 * @param {Object} id 原始id
	 * path  小程序的页面
	 */
	static openWeixinFromApp(appid, path) {
		plus.share.getServices(function(s) {
			let sweixin = null;
			for (let i = 0; i < s.length; i++) {
				if (s[i].id == 'weixin') {
					sweixin = s[i];
					console.log('调起小程序111', JSON.stringify(sweixin))
				}
			}
			//判断是否有微信
			if (sweixin) {
				console.log('调起小程序', s)
				//唤起微信跳转小程序
				sweixin.launchMiniProgram({
					id: appid
				}, function() {
					return true;
				}, function(e) {
					console.log("微信唤起失败", JSON.stringify(e));
					uni.showToast({
						title: '微信唤起失败，请检查是否运行或有微信应用',
						icon: 'none'
					})
					return false;
				})
			} else {
				uni.showToast({
					title: '微信唤起失败，请检查是否运行或有微信应用',
					icon: 'none',
					duration: 3000
				})
				return false;
			}
		}, function(e) {
			console.log("微信唤起失败 error", JSON.stringify(e));
			uni.showToast({
				title: '微信唤起失败，请重试',
				icon: 'none',
				duration: 3000
			})
			return false;
		});

	}

	/**
	 * 小程序跳转到小程序
	 * @param {Object} appid B小程序的appid
	 * path pages/index/index 要跳转的目标小程序（B小程序）的路径
	 * extraData:{ //需要传递给目标小程序的参数
	 *    'name': 'A小程序传递的参数'
	 *}
	 */
	static openWeixinFromWx(appid, path, extraData, name) {
		// #ifdef MP-WEIXIN
		uni.showModal({
			title: '提示',
			content: '确定要跳转到:' + name + '小程序吗？',
			cancelText: '取消',
			confirmText: '确定',
			success: res => {
				if (res.confirm) {
					uni.navigateToMiniProgram({
						appId: appid, //被跳转的appId
						path: path, //要跳转的目标小程序（B小程序）的路径
						extraData: extraData,
						envVersion: 'release', //跳转的版本：develop（开发版），trial（体验版），release（正式版）
						success(res) {
							// 打开成功
							console.log(res)
						},
						fail(res) {
							// 打开失败
							console.log(res)
						}
					})
				}
			}
		})
		// #endif
	}

	/**
	 * H5 打开微信小程序
	 * @param {Object} url 小程序链接
	 * 如何生成小程序链接 https://www.yii666.com/blog/416993.html
	 */
	static openWeixinFromH5(url) {
		// #ifdef H5
		window.location.href = url
		// #endif
	}


	/**
	 *  app 通过主包打开unimp 小程序
	 * @param {Object} appid wgt包APPid
	 * path  打开unimp路径 /v8/mall
	 * url 子页面
	 */
	static openUniMpFromApp(path, url) {
		uni.sendHostEvent('openMp', {
			'path': path,
			'url': url
		}, (ret) => {
			//发送消息成功回调
			console.log('Send event to Host: ' + JSON.stringify(ret));
		});
	}
	// 通过主包打开webview页面
	static openWebviewFromApp(path) {
		uni.sendHostEvent('webview', {
			'path': path
		}, (ret) => {
			//发送消息成功回调
			console.log('Send event to Host: ' + JSON.stringify(ret));
		});
	}
	/**
	 * 小程序跳转到unimp
	 * title 标题
	 * @param {Object} url 跳转链接
	 */
	static openUniMpFromWx(title = '', url) {
		// #ifdef MP-WEIXIN
		uni.navigateTo({
			url: '/pages/webview/webview?url=' + url + '&title=' + title
		})
		// #endif
	}

	/**
	 * H5 打开unimp
	 * title 标题
	 * @param {Object} url 小程序链接
	 */
	static openUniMpFromH5(title = '', url) {
		// #ifdef H5
		uni.navigateTo({
			url: '/pages/webview/webview?url=' + url + '&title=' + title
		})
		// #endif
	}
}